
package com.hlkj.pay.vo.merchant.resp.payment;

import com.hlkj.pay.vo.BaseProviderResp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * 商户代付详情
 * 
 * @TableName t_merchant_payment_detail
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class MerchantPaymentDetailPageResp extends BaseProviderResp {
    
    /**
     * sn
     */
    @Schema(description = "子通道编码")
    private String mchChannelCode;
    /**
     * 通道编码
     */
    @Schema(description ="appId")
    private String appId;
    
    /**
     * 代付id
     */
    @Schema(description ="代付id")
    private String paymentId;
    /**
     * 代付详情id
     */
    @Schema(description ="代付详情id")
    private String detailPaymentId;
    /**
     * 状态 2 执行中 3 执行完成 4 执行失败
     */
    @Schema(description ="状态 2 执行中 3 执行完成 4 执行失败")
    private Integer status;
    /**
     * @see com.hlkj.pay.enums.TransferOrderEnums.TRANSFER_ORDER_STATUS
     * 支付方式 1- 支付宝账户； 2- 微信零钱；3-银行卡 4-渠道内部户
     */
    @Schema(description = "下发方式 1- 支付宝账户； 2- 微信零钱；3-银行卡 4-渠道内部户")
    private Integer entryType;
    @Schema(description = "收款方类型，1=个人，2=企业，入账方式为3或4必传，其它非必传")
    private Integer payeeType;
    /**
     * 备注
     */
    @Schema(description ="备注")
    private String remark;
    @Schema(description ="接口描述")
    private String message;
    /**
     * 代付金额
     */
    @Schema(description ="代付金额")
    private BigDecimal payAmount;
    /**
     * 收款方名称
     */
    @Schema(description ="收款方名称")
    private String name;
    /**
     * 收款方code
     */
    @Schema(description ="收款方帐号")
    private String cardNo;
    /**
     * 银行编码
     */
    @Schema(description ="收款方银行编码")
    private String bankCode;
    /**
     * 银行名称
     */
    @Schema(description ="收款方银行名称")
    private String bankName;
    /**
     * 联行号
     */
    @Schema(description ="收款方联行号")
    private String branchCode;
    /**
     * 银行卡绑定手机号
     */
    @Schema(description ="收款方银行卡绑定手机号")
    private String cardPhone;
    /**
     * 省份名称
     */
    @Schema(description ="省份名称")
    private String provinceName;
    /**
     * 城市名称
     */
    @Schema(description ="城市名称")
    private String cityName;
    /**
     * 0:收款方付款;1:付款方付费
     */
    @Schema(description ="付费方式 0:收款方扣费;1:付款方扣费")
    private Integer feePayer;
    /**
     * 成功时间
     */
    @Schema(description = "成功时间")
    private Long successTime;
    
    /**
     * 成功时间
     */
    @Schema(description = "第三方订单号")
    private String thirdPaymentId;
    
    /**
     * 成功时间
     */
    @Schema(description = "第三方手续费")
    private BigDecimal thirdDealAmount;

    /**
     * 商户订单号
     */
    @Schema(description = "商户订单号")
    private String mchOrderNo;


    /**
     * 机构订单号
     */
    @Schema(description = "机构订单号")
    private String insOrderNo;


    /**
     * 渠道附加订单号
     */
    @Schema(description = "渠道附加订单号")
    private String channelOrderId;
    @Schema(description = "手续费金额")
    private BigDecimal feeAmount;
}
